refactor: create ProvideCanonicalUrl component #2572
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To replace canonicalUrl mixin.
The component generates four variants of the current page's canonical URL and provides them for injection to the default slot.
Examples:
canonicalUrl.withBothLocaleAndQuery
:https://www.example.org/en/about-us?this=that
canonicalUrl.withOnlyQuery
:https://www.example.org/about-us?this=that
canonicalUrl.withOnlyLocale
:https://www.example.org/en/about-us
canonicalUrl.withNeitherLocaleNorQuery
:https://www.example.org/about-us
The component is used by each layout and wraps around the component so that all descendants within the body of the page have access to the canonical URL if they inject it.
It also takes responsibility for providing
link[hreflang="x-default"][rel="alternate"]
andmeta[property="og-url"]
elements to the document head.NOTE: This would ideally be a composable, but couldn't get that working wrt provision of baseUrl, i18n and route from Options API setup function where there is no vue/nuxt context available, and lack of v3 helpers like useContext.